<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>

</body>
<script type="text/javascript">
    // 根据一个数字日期，判断这个日期是这一年的第几天 例如： 20160211，计算后结果为42
    // var date = prompt("请输入数字日期：");
    var date = 20200313;
    /* 获取年月日 */
    var year = parseInt(date / 10000)
    var month = parseInt(date / 100) % 100
    var day = date % 100
    /* 
        思路:
            如果我输入的是20220809  => 1,2,3,4,5,6,7月份的总天数+8月过去了的天数
            如果我输入的是20201213  => 1,2,3,4,5,6,7,8,9,10,11月份的总天数+12过去了的天数
        
            利用循环
                如果本月是8月份
                    利用循环从1月份循环到7月份,然后对每一个月的天数进行相加
                如果本月是12月份
                    利用循环从1月份循环到11月份,然后对每一个月的天数进行相加
            最后
                将计算得到的总天数+本月已经过去了的天数
    */
    var count = 0;
    //初始条件
    var index = 1;
    while (index < month) {//假如是8月,那么就index<8,刚好我的目的就是计算到7月份
        //每一个月的天数
        switch (index) {//1
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                count += 31;//count = count + 31;
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                count += 30;
                break;
            case 2:
                if ((year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0)) {
                    count += 29;
                } else {
                    count += 28;
                }
                break;
            default:
                console.log("输错了");
        }
        //迭代条件
        index++
    }
    //最后将之前那几个月的总天数+本月已经过去了的天数
    count = count + day;//count = count + day;
    // count += day;

    console.log(count);
</script>

</html>